模板能够对各种类型的类和函数进行参数化，引入尽可能多的模板参数以实现对类型或算法的定制。通过这种方式，“模板化”组件可以实例化，以满足外部代码的需求。然而，引入几十个模板参数来实现最大参数化其实没有必要。必须在外部代码中指定所有相应的参数也非常繁琐，而且模板参数会使组件与其外部代码之间的关系复杂化。

我们引入的大多数参数都有默认值，参数可以由几个主要参数决定，这些参数可以省略。也可以给其他参数提供依赖于主要参数的默认值，这可以满足大多数情况，但默认值偶尔需要重写(对于特殊应用程序)。然而，其他参数与主要参数无关:除了存在几乎符合要求的默认值外，其本身就是主要参数。

特征(或特征模板)是C++编程工具，极大地促进了工业化模板设计中出现的那种参数管理。本章中，将证明这种模板是有用的，并演示各种技术，这些技术能够编写更健壮和强大的工具。

这里提供的大多数特性都可以在C++标准库中，以某种形式使用。为了简单起见，我们给出简化的实现，其中省略了工业化实现(如标准库的那些)中的一些细节。出于这个原因，我们还使用了自己的命名方案，其很容易与标准特征对应。